////
////  inoTCPListener.swift
////  Trans
////
////  Created by zcj on 2025/6/23.
////
//import Foundation
//import NIOCore
//import NIOPosix
//
//class InoTCPListener: NSObject{
//    private let host:String
//    private let port:Int
//    /// The server's event loop group.
//    private let eventLoopGroup: MultiThreadedEventLoopGroup
//    
//    public func main(){
//        
//    }
//    
//    public init(host:String,port:Int) {
//        self.host = host
//        self.port = port
//        eventLoopGroup = .singleton
//    }
//    public func run(){
//        let elf = ServerBootstrap(group: eventLoopGroup)
//            .childChannelInitializer { channel in
//                //可以传入多个handler，然后根据顺序将上一个handler处理的数据发给下一个handler
//                channel.pipeline.addHandlers([DiscardServerHandler()])
//            }
//            .serverChannelOption(.backlog, value: 128)
//            .childChannelOption(ChannelOptions.socket(SocketOptionLevel(SOL_SOCKET),SO_KEEPALIVE) , value: 1)
//        do{
//            let channel = try elf.bind(host: host, port: port).wait()//绑定端口
//            try channel.closeFuture.wait()  // 阻塞等待关闭
//            
//        }catch{
//            print("\(error.localizedDescription)")
//        }
//    }
//    
//    public func shutdown(){
//        do{
//            try eventLoopGroup.syncShutdownGracefully()//关闭连接
//        }catch{
//            print("\(error.localizedDescription)")
//        }
//    }
//}
//
//
//
//class DiscardServerHandler: ChannelInboundHandler {
//    typealias InboundIn = ByteBuffer  // 1.
//    
//    func channelActive(context: ChannelHandlerContext) {
//        let channel = context.channel
//        let id = ObjectIdentifier(channel)
//        
//    }
//    
//    func channelRead(context: ChannelHandlerContext, data: NIOAny) {  // 2.
//        var msg: ByteBuffer = unwrapInboundIn(data)
//        print(msg.readString(length: msg.readableBytes)!)
//    }
//    
//    func errorCaught(context: ChannelHandlerContext, error: Error) {  // 3.
//        print("\(error.localizedDescription)")
//    }
//}
//
//
